package org.fjsei.yewu.jyjc.model;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

import static org.fjsei.yewu.jyjc.DateUtils.YYYY_MM_DD;
import static org.fjsei.yewu.jyjc.DateUtils.YYYY_MM_DD_HH_MM_SS;

//import static com.fjtj.seip.framework.common.util.date.DateUtils.YYYY_MM_DD;
//import static com.fjtj.seip.framework.common.util.date.DateUtils.YYYY_MM_DD_HH_MM_SS;

/**
 * @author hjz
 * @since 2023/10/24 上午10:58
 */
@Data
public class AmrEqpBaseResp implements AmrEqpBaseInfo {
    /**
     * 说明：设备识别码
     * 数据类型及格式：C..12
     **/
    @JSONField(name = "OIDNO")
    private String oidno;

    /**
     * 说明：一品一码
     * 数据类型及格式：C..300
     **/
    @JSONField(name = "PRODUCT_ONE_COD")
    private String productOneCod;

    /**
     * 说明：设备种类 参照D.6
     * 数据类型及格式：C..50
     **/
    @JSONField(name = "EQP_TYPE")
    private String eqpType;

    /**
     * 说明：设备类别 参照D.7
     * 数据类型及格式：C..50
     **/
    @JSONField(name = "EQP_SORT")
    private String eqpSort;

    /**
     * 说明：设备品种 参照D.8
     * 数据类型及格式：C..50
     **/
    @JSONField(name = "EQP_VART")
    private String eqpVart;

    /**
     * 说明：设备型号
     * 数据类型及格式：C..180
     **/
    @JSONField(name = "EQP_MOD")
    private String eqpMod;

    /**
     * 说明：出厂编号
     * 数据类型及格式：C..120
     **/
    @JSONField(name = "FACTORY_COD")
    private String factoryCod;

    /**
     * 说明：设备名称
     * 数据类型及格式：C..90
     **/
    @JSONField(name = "EQP_NAME")
    private String eqpName;

    /**
     * 说明：单位内部编号
     * 数据类型及格式：C..60
     **/
    @JSONField(name = "EQP_INNER_COD")
    private String eqpInnerCod;

    /**
     * 说明：使用单位名称
     * 数据类型及格式：C..150
     **/
    @JSONField(name = "USE_UNT_NAME")
    private String useUntName;

    /**
     * 说明：使用单位社会信用代码
     * 数据类型及格式：C18
     **/
    @JSONField(name = "USE_UNT_COD")
    private String useUntCod;

    /**
     * 说明：安全管理部门名称
     * 数据类型及格式：C..150
     **/
    @JSONField(name = "SAFE_DEPT_NAME")
    private String safeDeptName;

    /**
     * 说明：设备所属区域(区域代码)
     * 数据类型及格式：C..12
     **/
    @JSONField(name = "EQP_AREA_COD")
    private String eqpAreaCod;

    /**
     * 说明：设备使用地点
     * 数据类型及格式：C..150
     **/
    @JSONField(name = "EQP_USE_ADDR")
    private String eqpUseAddr;

    /**
     * 说明：分支机构/楼盘名称
     * 数据类型及格式：C..128
     **/
    @JSONField(name = "SECUDEPT_NAME")
    private String secudeptName;

    /**
     * 说明：制造单位
     * 数据类型及格式：C..150
     **/
    @JSONField(name = "MAKE_UNT_NAME")
    private String makeUntName;

    /**
     * 说明：制造单位社会信用代码
     * 数据类型及格式：C18
     **/
    @JSONField(name = "MAKE_UNT_COD")
    private String makeUntCod;

    /**
     * 说明：制造日期 yyyy-MM-dd
     * 数据类型及格式：D
     **/
    @JSONField(name = "MAKE_DATE", format = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate makeDate;

    /**
     * 说明：制造国
     * 数据类型及格式：C..45
     **/
    @JSONField(name = "MAKE_COUNTRY")
    private String makeCountry;

    /**
     * 说明：销售价格
     * 数据类型及格式：N..10,2
     **/
    @JSONField(name = "EQP_PRICE")
    private BigDecimal eqpSellPrice;

    /**
     * 说明：设备重量
     * 数据类型及格式：N..10,2
     **/
    @JSONField(name = "EQP_WEIGHT")
    private BigDecimal eqpWeight;

    /**
     * 说明：进口类型
     * 数据类型及格式：C..30
     **/
    @JSONField(name = "IMPORT_TYPE")
    private String importType;

    /**
     * 说明：投用日期 yyyy-MM-dd
     * 数据类型及格式：D
     **/
    @JSONField(name = "FIRSTUSE_DATE", format = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate firstuseDate;

    /**
     * 说明：国家代码
     * 数据类型及格式：C..75
     **/
    @JSONField(name = "EQP_STATION_COD")
    private String eqpStationCod;

    /**
     * 说明：使用状态，参照D.40
     * 数据类型及格式：N1
     **/
    @JSONField(name = "EQP_USE_STA")
    private String eqpUseSta;

    /**
     * 说明：状态变更日期 yyyy-MM-dd
     * 数据类型及格式：D
     **/
    @JSONField(name = "USESTA_CHG_DATE", format = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate usestaChgDate;

    /**
     * 说明：设备联系人
     * 数据类型及格式：C..150
     **/
    @JSONField(name = "USE_LKMEN")
    private String useLkmen;

    /**
     * 说明：联系电话
     * 数据类型及格式：C..13
     **/
    @JSONField(name = "USE_PHONE")
    private String usePhone;

    /**
     * 说明：检验机构
     * 数据类型及格式：C..100
     **/
    @JSONField(name = "ISP_UNT_NAME")
    private String ispUntName;

    /**
     * 说明：检验机构社会信用代码
     * 数据类型及格式：C18
     **/
    @JSONField(name = "ISP_UNT_COD")
    private String ispUntCod;

    /**
     * 说明：注册登记状态，参照D.12
     * 数据类型及格式：N1
     **/
    @JSONField(name = "EQP_REG_STA")
    private String eqpRegSta;

    /**
     * 说明：注册登记日期 yyyy-MM-dd
     * 数据类型及格式：D
     **/
    @JSONField(name = "REG_DATE", format = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate regDate;

    /**
     * 说明：注册登记人员
     * 数据类型及格式：C..150
     **/
    @JSONField(name = "REG_USER_NAME")
    private String regUserName;

    /**
     * 说明：注册登记机构名称
     * 数据类型及格式：C..150
     **/
    @JSONField(name = "REG_UNT_NAME")
    private String regUntName;

    /**
     * 说明：注册登记机构代码
     * 数据类型及格式：C18
     **/
    @JSONField(name = "REG_COD")
    private String regUntCod;

    /**
     * 说明：注册代码
     * 数据类型及格式：C..75
     **/
    @JSONField(name = "EQP_REG_COD")
    private String eqpRegCod;

    /**
     * 说明：使用证号
     * 数据类型及格式：C..45
     **/
    @JSONField(name = "EQP_USECERT_COD")
    private String eqpUsecertCod;

    /**
     * 说明：设计使用年限
     * 数据类型及格式：C..10
     **/
    @JSONField(name = "DESIGN_USE_YEAR")
    private String designUseYear;

    /**
     * 说明：设计使用年限到期时间 yyyy-MM-dd
     * 数据类型及格式：D
     **/
    @JSONField(name = "DESIGN_USE_OVERYEAR", format = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate designUseOveryear;

    /**
     * 说明：安装管理员
     * 数据类型及格式：C..50
     **/
    @JSONField(name = "SAFE_MEN")
    private String safeMen;

    /**
     * 说明：是否流动作业设备，1 是， 0 否
     * 数据类型及格式：N1
     **/
    @JSONField(name = "IS_MOVEEQP")
    private String isMoveeqp;

    /**
     * 说明：安全管理部门地址
     * 数据类型及格式：C..150
     **/
    @JSONField(name = "SAFE_DEPT_ADDR")
    private String safeDeptAddr;

    /**
     * 说明：安全管理部门负责人
     * 数据类型及格式：C..150
     **/
    @JSONField(name = "SAFE_DEPT_LEADER")
    private String safeDeptLeader;

    /**
     * 说明：安全管理部门联系人
     * 数据类型及格式：C..90
     **/
    @JSONField(name = "SAFE_DEPT_LKMEN")
    private String safeDeptLkmen;

    /**
     * 说明：安全管理部门联系电话
     * 数据类型及格式：C..13
     **/
    @JSONField(name = "SAFE_DEPT_PHONE")
    private String safeDeptPhone;

    /**
     * 说明：安全管理部门手机
     * 数据类型及格式：C11
     **/
    @JSONField(name = "SAFE_DEPT_MOBILE")
    private String safeDeptMobile;

    /**
     * 说明：维保单位代码
     * 数据类型及格式：C..32
     **/
    @JSONField(name = "MANT_UNT_COD")
    private String mantUntCod;

    /**
     * 说明：维保单位名称
     * 数据类型及格式：C..150
     **/
    @JSONField(name = "MANT_UNT_NAME")
    private String mantUntName;

    /**
     * 说明：维保电话
     * 数据类型及格式：C..13
     **/
    @JSONField(name = "MANT_PHONE")
    private String mantPhone;

    /**
     * 说明：维保周期
     * 数据类型及格式：N..2
     **/
    @JSONField(name = "MANT_CYCLE")
    private Integer mantCycle;

    /**
     * 说明：设计单位
     * 数据类型及格式：C..150
     **/
    @JSONField(name = "DESIGN_UNT_NAME")
    private String designUntName;

    /**
     * 说明：设计单位社会信用代码
     * 数据类型及格式：C18
     **/
    @JSONField(name = "DESIGIN_UNT_COD")
    private String designUntCod;

    /**
     * 说明：安装单位
     * 数据类型及格式：C..150
     **/
    @JSONField(name = "INST_UNT_NAME")
    private String instUntName;

    /**
     * 说明：安装单位社会信用代码
     * 数据类型及格式：C18
     **/
    @JSONField(name = "INST_UNT_COD")
    private String instUntCod;

    /**
     * 说明：改造单位
     * 数据类型及格式：C..150
     **/
    @JSONField(name = "ALT_UNT_NAME")
    private String altUntName;


    @JSONField(name = "ALT_UNT_COD")
    private String altUntCod;

    /**
     * 说明：大修单位社会信用代码
     * 数据类型及格式：C18
     **/

    @JSONField(name = "OVH_UNT_NAME")
    private String ovhUntName;

    /**
     * 说明：大修单位社会信用代码
     * 数据类型及格式：C18
     **/
    @JSONField(name = "OVH_UNT_COD")
    private String ovhUntCod;

    /**
     * 说明：产权单位
     * 数据类型及格式：C..150
     **/
    @JSONField(name = "PROP_UNT_NAME")
    private String propUntName;

    /**
     * 说明：产权单位社会信用代码
     * 数据类型及格式：C18
     **/
    @JSONField(name = "PROP_UNT_COD")
    private String propUntCod;

    /**
     * 说明：设计鉴定单位
     * 数据类型及格式：C..150
     **/
    @JSONField(name = "DESIGN_CHKUNT")
    private String designChkunt;

    /**
     * 说明：设备级别
     * 数据类型及格式：C..30
     **/
    @JSONField(name = "EQP_LEVEL")
    private String eqpLevel;

    /**
     * 说明：发证日期 yyyy-MM-dd
     * 数据类型及格式：D
     **/
    @JSONField(name = "CERT_DATE", format = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate certDate;

    /**
     * 说明：是否重点监控，1 是， 0 否
     * 数据类型及格式：N1
     **/
    @JSONField(name = "IF_MAJCTL")
    private String ifMajctl;

    /**
     * 说明：是否人口密集区，1 是， 0 否
     * 数据类型及格式：N1
     **/
    @JSONField(name = "IF_POPULATED")
    private String ifPopulated;

    /**
     * 说明：是否在重要场所，1 是， 0 否
     * 数据类型及格式：N1
     **/
    @JSONField(name = "IF_MAJPLACE")
    private String ifMajplace;

    /**
     * 说明：是否重要设备，1 是， 0 否
     * 数据类型及格式：N1
     **/
    @JSONField(name = "IF_MAJEQP")
    private String ifMajeqp;

    /**
     * 说明：事故隐患类别，参照D.42
     * 数据类型及格式：N1
     **/
    @JSONField(name = "ACCI_TYPE")
    private String acciType;

    /**
     * 说明：安全评定等级，参照D.43
     * 数据类型及格式：N2
     **/
    @JSONField(name = "SAFE_LEV")
    private String safeLev;

    /**
     * 说明：所属自贸区，参照D。44
     * 数据类型及格式：N
     **/
    @JSONField(name = "ZMQ_COD")
    private String zmqCod;

    /**
     * 说明：延期检验日期1 yyyy-MM-dd
     * 数据类型及格式：D
     **/
    @JSONField(name = "ABNOR_ISP_DATE1", format = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate abnorIspDate1;

    /**
     * 说明：延期检验日期2 yyyy-MM-dd
     * 数据类型及格式：D
     **/
    @JSONField(name = "ABNOR_ISP_DATE2", format = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate abnorIspDate2;

    /**
     * 说明：是否按需维保，1 是， 0 否
     * 数据类型及格式：N1
     **/
    @JSONField(name = "ON_DEMAND_STA")
    private String onDemandSta;



    /**
     * 说明：检测机构
     * 数据类型及格式：C..150
     **/
    @JSONField(name = "LAST_CHK_UNT_NAME")
    private String chkUntName;

    /**
     * 说明：检测机构社会信用代码
     * 数据类型及格式：C18
     **/
    @JSONField(name = "CHK_UNT_COD")
    private String chkUntCod;

    /**
     * 说明：上次检测报告编号
     * 数据类型及格式：C..50
     **/
    @JSONField(name = "LAST_CHK_REPORT")
    private String lastChkReport;

    /**
     * 说明：上次定期检测日期 yyyy-MM-dd
     * 数据类型及格式：D
     **/
    @JSONField(name = "LAST_CHK_DATE", format = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate lastChkDate;

    /**
     * 说明：上次检测报告结论
     * 数据类型及格式：C..100
     **/
    @JSONField(name = "LAST_CHK_CONCLU")
    private String lastChkConclu;

    /**
     * 说明：下次定期检测日期 yyyy-MM-dd
     * 数据类型及格式：D
     **/
    @JSONField(name = "NEXT_CHK_DATE", format = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate nextChkDate;

    /**
     * 说明：最后一次检验业务类型ID1
     * 数据类型及格式：N4
     **/
    @JSONField(name = "LAST_ISPOPE_TYPE_1")
    private String lastIspopeType1;

    /**
     * 说明：最后一次检验流水号1
     * 数据类型及格式：N12
     **/
    @JSONField(name = "LAST_ISP_COD_1")
    private String lastIspCod1;

    /**
     * 说明：最后一次检验日期1
     * 数据类型及格式：D
     **/
    @JSONField(name = "LAST_ISP_DATE_1", format = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate lastIspDate1;

    /**
     * 说明：最后一次检验结论1
     * 数据类型及格式：C..100
     **/
    @JSONField(name = "LAST_ISP_CONCLU_1")
    private String lastIspConclu1;

    /**
     * 说明：最后一次检验报告号1
     * 数据类型及格式：C..50
     **/
    @JSONField(name = "LAST_ISP_REPORT_1")
    private String lastIspReport1;

    /**
     * 说明：最后一次检验业务类型ID2
     * 数据类型及格式：N4
     **/
    @JSONField(name = "LAST_ISPOPE_TYPE_2")
    private String lastIspopeType2;

    /**
     * 说明：最后一次检验流水号2
     * 数据类型及格式：N12
     **/
    @JSONField(name = "LAST_ISP_COD_2")
    private String lastIspCod2;

    /**
     * 说明：最后一次检验日期2
     * 数据类型及格式：D
     **/
    @JSONField(name = "LAST_ISP_DATE2", format = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate lastIspDate2;

    /**
     * 说明：最后一次检验结论2
     * 数据类型及格式：C..100
     **/
    @JSONField(name = "LAST_ISP_CONCLU_2")
    private String lastIspConclu2;

    /**
     * 说明：最后一次检验报告号2
     * 数据类型及格式：C..50
     **/
    @JSONField(name = "LAST_ISP_REPORT_2")
    private String lastIspReport2;

    /**
     * 说明：下次检验日期1（在线、年度）yyyy-MM-dd
     * 数据类型及格式：D
     **/
    @JSONField(name = "NEXT_ISP_DATE_1", format = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate nextIspDate1;

    /**
     * 说明：下次检验日期2(机电定检，内检，全面）yyyy-MM-dd
     * 数据类型及格式：D
     **/
    @JSONField(name = "NEXT_ISP_DATE_2", format = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate nextIspDate2;

    /**
     * 说明：修改时间
     * 数据类型及格式：D
     **/
    @JSONField(name = "OPE_DATE", format = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime modifyTime;
}
